home *** CD-ROM | disk | FTP | other *** search
- #
- # Extrusion example of the IRIT letters created manually:
- #
- # Created by Gershon Elber, Mar 89
- #
-
- save_mat = view_mat;
- save_res = resolution;
-
- view_mat = view_mat * scale(vector(-10.0, 1.0, 1.0));
-
- v1 = vector( 0.0, 0.0, 0.0); # The I letter
- v2 = vector( 0.3, 0.0, 0.0);
- v3 = vector( 0.3, 0.0, 0.1);
- v4 = vector( 0.2, 0.0, 0.1);
- v5 = vector( 0.2, 0.0, 0.5);
- v6 = vector( 0.3, 0.0, 0.5);
- v7 = vector( 0.3, 0.0, 0.6);
- v8 = vector( 0.0, 0.0, 0.6);
- v9 = vector( 0.0, 0.0, 0.5);
- v10 = vector( 0.1, 0.0, 0.5);
- v11 = vector( 0.1, 0.0, 0.1);
- v12 = vector( 0.0, 0.0, 0.1);
-
- I = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ), false );
-
- v1 = vector( 0.0, 0.0, 0.0); # The R Letter
- v2 = vector( 0.1, 0.0, 0.0);
- v3 = vector( 0.1, 0.0, 0.5);
- v4 = vector( 0.2, 0.0, 0.5);
- v5 = vector( 0.2, 0.0, 0.4);
- v6 = vector( 0.1, 0.0, 0.4);
- v7 = vector( 0.1, 0.0, 0.3);
- v8 = vector( 0.2, 0.0, 0.0);
- v9 = vector( 0.3, 0.0, 0.0);
- v10 = vector( 0.2, 0.0, 0.3);
- v11 = vector( 0.3, 0.0, 0.3);
- v12 = vector( 0.3, 0.0, 0.6);
- v13 = vector( 0.0, 0.0, 0.6);
-
- R = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ), false );
-
- v1 = vector( 0.1, 0.0, 0.0);
- v2 = vector( 0.1, 0.0, 0.5);
- v3 = vector( 0.0, 0.0, 0.5);
- v4 = vector( 0.0, 0.0, 0.6);
- v5 = vector( 0.3, 0.0, 0.6);
- v6 = vector( 0.3, 0.0, 0.5);
- v7 = vector( 0.2, 0.0, 0.5);
- v8 = vector( 0.2, 0.0, 0.0);
-
- T = poly( list( v1, v2, v3, v4, v5, v6, v7, v8 ), false );
-
- free(v1); free(v2); free(v3); free(v4); free(v5); free(v6); free(v7);
- free(v8); free(v9); free(v10); free(v11); free(v12); free(v13);
-
- I1 = I;
- R2 = R * trans(vector( 0.4, 0.0, 0.0));
- I3 = I * trans(vector( 0.8, 0.0, 0.0));
- T4 = T * trans(vector( 1.2, 0.0, 0.0));
- free(I);
- free(R);
- free(T);
-
- view_mat = view_mat * trans(vector(7.0, 1.0, -4.0)) * scale(vector(-10.0, -10.0, -4.0));
-
-
- ext_dir = vector( 0.0,-1.0, 0.0);
-
- I1X = extrude(I1, ext_dir);
- R2X = extrude(R2, ext_dir);
- I3X = extrude(I3, ext_dir);
- T4X = extrude(T4, ext_dir);
- free(I1);
- free(R2);
- free(I3);
- free(T4);
-
- S1 = I1X ^ R2X ^ I3X ^ T4X;
- free(I1X);
- free(R2X);
- free(I3X);
- free(T4X);
-
- final = convex(S1);
- free(S1);
-
- Pt0 = CTLPT( E3, 0.0, 0.0, 0.0 );
- Pt1 = CTLPT( E3, 1.0, 1.0, 0.0 );
- Pt2 = CTLPT( E3, 2.0, 2.0, 0.0 );
- Pt3 = CTLPT( E3, 3.0, 3.0, 0.0 );
- Pt4 = CTLPT( E3, -6.0, -8.0, 0.0);
- Pt5 = CTLPT( E3, 5.0, 5.0, 0.0);
- Pt6 = CTLPT( E3, 6.0, 6.0, 0.0);
- Pt7 = CTLPT( E3, 12.0, 12.0, 0.0);
- Pt8 = CTLPT( E3, -9.0, -9.0, 0.0);
- Pt9 = CTLPT( E3, -1.0, -1.0, 0.0);
- Pt10 = CTLPT( E3, 2.8, 2.0, 0.0);
- Pt11 = CTLPT( E3, 0.2, 0.2, 0.0);
- Pt12 = CTLPT( E2, -1.0, -1.0);
- Pt13 = CTLPT( E2, 3.0, 3.0);
- VISIBLE = CBEZIER( list(Pt12,Pt13));
- MOV_Y = CBEZIER( list(Pt0,Pt2,Pt6,Pt2,Pt0));
- SCL = CBEZIER( list(Pt1,Pt5,Pt6,Pt3));
- ROT_Z = CBEZIER( list(Pt0,Pt10,Pt3));
- ROT_Y = CBEZIER( list(Pt0,Pt1,Pt2,Pt5,Pt1,Pt0));
- MOV_Z = CBEZIER( list(Pt0,Pt2,Pt7));
- ROT_X = CBEZIER( list(Pt0,Pt2,Pt5,Pt1,Pt0));
-
- VISIBLE = CREPARAM(VISIBLE,0.0,4.0);
- SCL = CREPARAM(SCL,0.5,1.5);
- ROT_Z = CREPARAM(ROT_Z,0.5,1.5);
- ROT_Y = CREPARAM(ROT_Y,2.0,3.5);
- MOV_Y = CREPARAM(MOV_Y,0.5,1.5);
- MOV_Z = CREPARAM(MOV_Z,3.2,4.0);
- ROT_X = CREPARAM(ROT_X,2.0,3.5);
-
- attrib(final,"animation",list(MOV_Z,ROT_Y,ROT_X,ROT_Z,SCL,VISIBLE,MOV_Y));
-
- free(VISIBLE);
- free(ROT_Z);
- free(SCL);
-
- B = BOX( vector( 0, 0, 0 ), 1, 1, 1 );
-
- SCL = CBEZIER( list(Pt0,Pt3,Pt5));
- VISIBLE = CBEZIER( list(Pt0,Pt3,Pt3));
- ROT_Z = CBEZIER( list(Pt0,Pt5,Pt5));
- VISIBLE = CREPARAM(VISIBLE,2.0,4.0);
- SCL = CREPARAM(SCL,0.0,4.0);
- ROT_Z = CREPARAM(ROT_Z,1.0,4.0);
-
- color(B,red);
- attrib(B,"animation",list(VISIBLE,ROT_Z,SCL));
- attrib(B,"transp","0.5");
-
- demo = list(B, final);
-
- save("sol01", demo);
- free(final);
- free(demo);
- free(B);
-
- resolution = save_res;
- view_mat = save_mat;
-